home *** CD-ROM | disk | FTP | other *** search
- WINSNOOP
- ========
-
- INTRODUCTION
-
- WINSNOOP is a system for network administrators to capture information on
- each user's Windows 3.1 Program Manager desktop to a set of (Paradox)
- database tables. WINSNOOP consists of 2 data collection agents, or
- 'snoopers', called GRPSNOOP and INISNOOP, and a set of Paradox database
- tables, GROUPS.DB, ICONS.DB and INIFILES.DB. References in this document
- to WINSNOOP shall be taken to mean GRPSNOOP and INISNOOP collectively. The
- rest of this document shall refer almost exclusively to the individual
- programs that comprise WINSNOOP, GRPSNOOP.EXE and INISNOOP.EXE.
-
- Group Snoop (GRPSNOOP) and INI Snoop (INISNOOP) are DOS programs that can
- be used on a network to build and maintain a (Paradox) database of Windows
- 3.1 groups, icons and INI files for each user on the network. By using
- GRPSNOOP and INISNOOP you can see what groups and icons (and icon properties)
- a user has on his/her Windows 3.1 Program Manager desktop. You can also
- browse the contents of all INI files in the user's personal WINDOWS
- directory.
-
- GRPSNOOP and INISNOOP together give you the raw information to do such
- things as implement a remote help desk, control use of unauthorized
- software and games, estimate software licensing requirements, or to help
- ease the task of upgrading and/or changing software applications across the
- network. Note that no Paradox forms, queries or reports are included with
- this system. You must develop the forms, queries and reports that meet your
- particular needs. This system provides only the basic table structures for
- the GROUPS, ICONS and INIFILES tables, as well as the programs GRPSNOOP.EXE
- and INISNOOP.EXE which populate these tables.
-
- LIMITATIONS
-
- GRPSNOOP/INISNOOP have been extensively tested, but it is impossible to
- test all possible uses of these programs, and errors can occur. In no event
- will Strider Software be liable for any damages, including loss of data,
- lost profits, or any other incidental or consequential damages arising from
- the use of these programs.
-
- RESTRICTIONS OF THE DEMO VERSIONS OF GRPSNOOP AND INISNOOP
-
- The demonstration versions of GRPSNOOP and INISNOOP, have the following
- restrictions:
-
- 1. GRPSNOOP will only read the information for the group files MAIN.GRP,
- ACCESSOR.GRP and GAMES.GRP.
-
- 2. INISNOOP will only read INI file contents for the files PROGMAN.INI and
- WIN.INI.
-
- The registered versions of GRPSNOOP and INISNOOP do not have the above
- mentioned restrictions. This file documents how to use the registered
- versions of these programs. You must keep the above restrictions in mind
- when you read the remainder of this document if you are evaluating the
- demo versions.
-
- LIMITED LICENSE
-
- This software is distributed on a "shareware" basis. It is not free software,
- or in the public domain. You are granted a license to use these copies of
- GRPSNOOP and INISNOOP for a free 30 day evaluation period. If you wish to
- continue to use GRPSNOOP and/or INISNOOP after the evaluation period, you
- must send a registration fee of $80 for GRPSNOOP/INISNOOP to Strider
- Software to obtain a perpetual single-server license. For your fee you
- will be sent a diskette with the latest registered versions of the
- programs.
-
- You may give the demo versions of these programs to others provided you
- follow these restrictions: The program files (GRPSNOOP.EXE and INISNOOP.EXE)
- are not modified in any way, the documentation file is included
- (WINSNOOP.DOC), the registration order form is included (ORDER.DOC), and
- you disclose the legal requirement to register the software for use
- beyond the 30 day eval period. These software programs are owned by
- Strider Software and are licensed for use to registered licensees. You
- may not sell these programs, but you may charge a modest fee to
- distribute the programs on diskettes or electronic bulletin boards.
-
- ACKNOWLEDGMENTS
-
- Paradox and the Paradox Engine are registered trademarks of Borland
- International.
-
- Microsoft and Windows are trademarks of Microsoft Corporation.
-
- REQUIREMENTS
-
- GRPSNOOP and INISNOOP require DOS 3.1 or higher and an IBM PC (or compatible)
- with a 386 (or higher) processor. If either of these conditions are not met
- then GRPSNOOP/INISNOOP will terminate with an error message.
-
- Supported networks are those supported by the Borland Paradox Engine, which
- these products use to access and update the Paradox tables. These are:
-
- - IBM Token Ring or PC Network with IBM PC Local Area Network Program (v 1.12
- or higher).
-
- - Novell Advanced NetWare (v 2.0A or higher)
-
- - 3Com 3+ Share network (v 1.5.1 or higher)
-
- - DEC Pathworks (v 1.0 or higher)
-
- - Microsoft Local Area Network (LAN) Manager (v 2.0 or higher)
-
- - Banyan Vines network (v 2.10 or higher)
-
- - AT&T StarGROUP for DOS (v 3.1 or higher)
-
- Any other network configuration that is 100% compatible with one of the
- networks listed above and with DOS 3.1 or higher.
-
- Paradox 4.0 for DOS or higher, or Paradox for Windows v 1.0 or higher is
- required to access the tables produced by GRPSNOOP/INISNOOP. In particular,
- Paradox 3.5 cannot access these tables.
-
- USING GRPSNOOP/INISNOOP
-
- Setting up to use GRPSNOOP/INISNOOP consists of doing the following:
-
- 1. Installing a supported version of Paradox (if not already done)
-
- 2. Setting up a directory for the Paradox network control file
- (PDOXUSRS.NET) to control concurrent access to the Paradox tables on
- the network.
-
- 3. Creating a directory on the server to hold the tables GROUPS.DB,
- ICONS.DB and INIFILES.DB, with the required visibility and access rights
- for users on the network.
-
- 4. Creating a batch file(s) on the server that run GRPSNOOP/INISNOOP with
- appropriate parameters for your network.
-
- Further details on each installation step follows:
-
- 1. INSTALLING PARADOX
-
- If Paradox has not been installed, you must install a supported version by
- following the documentation provided for this purpose by Borland. Note that
- Paradox itself does not have to be installed on the server, but may need to
- be, depending on your intended uses for the product.
-
- 2. SETTING UP PDOXUSRS.NET
-
- If not already done, a directory must be established on the server for
- the Paradox network control file PDOXUSRS.NET. All users must have read,
- write and create access to this directory(Ex: Q:\PARADOX). Consult your
- Paradox manuals for further details.
-
- 3. SETTING UP A DIRECTORY TO HOLD PARADOX TABLES
-
- Create a directory on the server (Ex: R:\WINDATA) that is visible to all
- users. All users must have read/write access to this directory. Copy the
- (empty) table structures and related files (GROUPS.*, ICONS.* and
- INIFILES.*) from the distribution diskette to this directory.
-
- 4. CREATE BATCH FILES TO RUN GRPSNOOP/INISNOOP
-
- Copy the files GRPSNOOP.EXE and INISNOOP.EXE to a directory on the server
- where all users on the network have sufficient rights to execute them (ex:
- Y:\UTILS).
-
- Create a batch file (see the example below) which invokes GRPSNOOP.EXE and
- INISNOOP.EXE with the appropriate command line switches and arguments for
- your network and configuration. Consult the section 'GRPSNOOP/INISNOOP
- Reference' for details on how to configure these programs. The batch file
- should also be located on the server in a directory that is accessible to
- all users (ex: Y:\UTILS). The batch file can either be run explicitly from
- each workstation, or could be run by the user when required, or could be run
- automatically as part of the user login process. You may want to run the
- batch file only once a week or month, as needed, to avoid unnecessary delays
- for the user at login time.
-
- SAMPLE SETUP
-
- Assume the following conditions are true:
-
- 1. Paradox is installed on the network administrator's PC.
-
- 2. The Paradox network control file is located in the directory Q:\PARADOX,
- on the server. This directory is visible to all users on the network with
- read/write/create access.
-
- 3. The Paradox tables GROUPS.DB, ICONS.DB and INIFILES.DB (and related
- files) are located in the directory R:\WINDATA on the server. This directory
- is visible to all users on the network with read/write access.
-
- 4. User's on the network either run a networked version of Windows 3.1, in
- which case their personal WINDOWS directory is X:\WIN, or else run Windows
- locally on their hard drive. The DOS environment variable NETWIN is set to
- TRUE during the login process for user's using the networked version of
- Windows.
-
- 5. The DOS environment variable USERNAME is set to the user's login name
- during the login process.
-
- The following is a sample batch file for invoking GRPSNOOP/INISNOOP in this
- environment:
-
- @ECHO OFF
-
- IF /%NETWIN% == TRUE/ GOTO NETW
-
- REM User runs Windows locally, assume WINDOWS dir is on the PATH
-
- GRPSNOOP %USERNAME% Q:\PARADOX R:\WINDATA /b64
- INISNOOP %USERNAME% Q:\PARADOX R:\WINDATA /b64
-
- GOTO END
-
- :NETW
-
- REM User runs networked version of WINDOWS, personal WINDOWS dir is X:\WIN
-
- GRPSNOOP %USERNAME% Q:\PARADOX R:\WINDATA /wX:\WIN /b64
- INISNOOP %USERNAME% Q:\PARADOX R:\WINDATA /wX:\WIN /b64
-
- GOTO END
-
- :END
-
-
- TABLE STRUCTURES
- ================
-
- GROUPS.DB
-
- FIELD NAME TYPE WIDTH KEY
- 1 User A 48 *
- 2 GroupFile A 80 *
- 3 WinDir A 80
- 4 Description A 40
- 5 NumIcons S
- 6 WindowState A 20
- 7 GrpFileDate D
- 8 GrpFileTime A 20
- 9 UpdateDate D
- 10 UpdateTime A 20
-
- 'User' is the network name of the user. GRPSNOOP uses the name specified as
- UserName on the command line to complete this field. It is up to 48
- characters in length.
-
- 'GroupFile' is the fully qualified path name of a Windows Group file. For
- example, C:\WINDOWS\MAIN.GRP.
-
- 'WinDir' is the location of the user's personal Windows directory. This is
- the location of the user's INI and GRP files. In a standalone installation
- of Windows, this is typically C:\WINDOWS. In a networked version of Windows,
- this might be something like U:\WIN.
-
- 'Description' is the text that is displayed under the group icon when it is
- minimized on the Program Manager desktop, or the group window title when in
- the opened state.
-
- 'NumIcons' is the number of icons contained within the group.
-
- 'WindowState' is a text field describing the Window state of the group.
- Valid values are:
-
- Hidden
- ShowNormal
- ShowMinimized
- ShowMaximized
- ShowNoActivate
- Show
- Minimize
- ShowMinNoActivate
- ShowNA
- Restore
-
- 'GrpFileDate' is the date of last update (or creation) of the group file.
-
- 'GrpFileTime' is the time of last update (or creation) of the group file.
-
- 'UpdateDate' is the date that this record was posted to the GROUPS.DB table.
-
- 'UpdateTime' is the time (as a formatted text string) that this record was
- posted to the GROUPS.DB table.
-
- 'GMT' is a field used by GRPSNOOP when updating the records of GROUPS.DB.
-
- This table has a composite primary key consisting of the 'User' and
- 'GroupFile' fields. This means that there cannot be more than one record in
- GROUPS.DB with the same values for the 'User' and 'GroupFile' fields.
-
- ICONS.DB
-
- FIELD NAME TYPE WIDTH KEY
- 1 User A 48 *
- 2 GroupFile A 80 *
- 3 Description A 40 *
- 4 WinDir A 80
- 5 CommandLine A 160
- 6 WorkingDir A 80
- 7 IconPath A 80
- 8 IconIndex S
- 9 ShortcutKey A 20
- 10 RunMin A 10
- 11 UpdateDate D
- 12 UpdateTime A 20
- 13 GMT N
-
- 'User' is the network name of the user. GRPSNOOP uses the name specified as
- UserName on the command line to complete this field. It is up to 48
- characters in length.
-
- 'GroupFile' is the fully qualified path name of a Windows Group file. For
- example, C:\WINDOWS\MAIN.GRP.
-
- 'Description' is the text displayed under the icon in the Program Manager
- group window.
-
- 'WinDir' is the location of the user's personal Windows directory. This is
- the location of the user's INI and GRP files. In a standalone installation
- of Windows, this is typically C:\WINDOWS. In a networked version of Windows,
- this might be something like U:\WIN.
-
- 'CommandLine' is the contents of the Command Line text box displayed in
- Program Manager's icon properties dialog box for this icon. This is the
- command used to start the application associated with this icon.
-
- 'WorkingDir' is the contents of the Working Directory text box displayed in
- Program Manager's icon properties dialog box for this icon. This is the
- working directory for the application associated with this icon.
-
- 'IconPath' is the fully qualified path name of the file that contains the
- icon being used for this application. This is typically the same file as is
- specified on the 'CommandLine' for Windows 3.1 applications.
-
- 'IconIndex' specifies which icon within the file specified by 'IconPath' is
- being used for the application. Some files contain more than one icon.
-
- 'ShortcutKey' is the contents of the Shortcut Key text box displayed in
- Program Manager's icon properties dialog box for this icon. If no shortcut
- key has been specified, 'NONE' is shown, otherwise it is a key combination
- such as 'CTRL+ALT+B'.
-
- 'RunMin' is 'YES' or 'NO' depending on whether the Run Minimized check box
- in Program Manager's icon properties dialog box for this icon is checked or
- not. If it is checked, then Program Manager will launch the application in a
- minimized state when invoked.
-
- 'UpdateDate' is the date that this record was posted to the ICONS.DB table.
-
- 'UpdateTime' is the time (as a formatted text string) that this record was
- posted to the ICONS.DB table.
-
- 'GMT' is a field used by GRPSNOOP when updating the records of ICONS.DB.
-
- This table has a composite primary key consisting of the 'User', 'GroupFile'
- and 'Description' fields. This means that there cannot be more than one
- record in the ICONS.DB table with the same values for these fields.
-
- INIFILES.DB
-
- FIELD NAME TYPE WIDTH KEY
- 1 User A 48 *
- 2 INIFile A 13 *
- 3 WinDir A 80
- 4 INIFileDate D
- 5 INIFileTime A 20
- 6 UpdateDate D
- 7 UpdateTime A 20
- 8 GMT N
- 9 Contents M 240
-
- 'User' is the network name of the user. INISNOOP uses the name specified as
- UserName on the command line to complete this field. It is up to 48
- characters in length.
-
- 'INIFile' is the DOS file name of the INI file. For example, WIN.INI.
-
- 'WinDir' is the location of the user's personal Windows directory. This is
- the location of the user's INI and GRP files. In a standalone installation
- of Windows, this is typically C:\WINDOWS. In a networked version of Windows,
- this might be something like U:\WIN.
-
- 'INIFileDate' is the date of last update of the INI file.
-
- 'INIFileTime' is the time of last update of the INI file.
-
- 'UpdateDate' is the date that this record was posted to the INIFILES.DB
- table.
-
- 'UpdateTime' is the time (as a formatted text string) that this record was
- posted to the INIFILES.DB table.
-
- 'GMT' is a field used by INISNOOP when updating the records of INIFILES.DB.
-
- 'Contents' is a memo field containing the actual text contents of the INI
- file.
-
- GRPSNOOP/INISNOOP Reference
- ===========================
-
- Usage: GRPSNOOP UserName NetPath [TablePath] [/Option1...]
- INISNOOP UserName NetPath [TablePath] [/Option1...]
-
- where:
-
- UserName is the unique user name. Used as part of a composite key to
- distinguish Windows data records.
-
- NetPath is the location of the Paradox network control file PDOXUSRS.NET.
- Ex: Q:\PARADOX.
-
- TablePath is the location of the GROUPS.DB, ICONS.DB and INIFILES.DB
- Paradox tables. If not specified, defaults to NetPath.
-
- Optional Parameters:
-
- /wWinDir - WinDir is the location of the user's Window user definition
- files. That is, the user's WINDOWS directory; or, the location of the user's
- INI and GRP files. This is typically C:\WINDOWS in a standalone version of
- Windows. If not specified, the user's PATH statement is searched for the
- location of the file PROGMAN.INI.
-
- /bBufferSize - Specifies the buffer size used (in Kb) for accessing Paradox
- tables on the network. The default size is 32Kb. Increasing the buffer size
- may be necessary in some cases if the Paradox table sizes get larger.
- Increasing the buffer size can substantially improve the performance of the
- program.
-
- /pPassword - Password is an encrpypted version of the master table password
- assigned to the Paradox tables using the facilities of Paradox. GRPSNOOP and
- INISNOOP accept and encrypted version of the password in order to prevent
- unauthorized user's from determining the passwords by seeing the command
- line arguments to GRPSNOOP and INISNOOP in a batch file, for instance. See
- the section 'Using Table Passwords' for further details.
-
- USING TABLE PASSWORDS
- =====================
-
- Paradox lets you assign passwords to tables. If you wish to use this
- feature of Paradox to prevent unauthorized access to the information
- in these tables, you may do so. However, if you do password protect
- these tables, then GRPSNOOP and INISNOOP will have to know the passwords
- in order to access and update the tables.
-
- In order to prevent users from determining the table passwords by
- seeing the command line arguments to GRPSNOOP and INISNOOP, these
- programs accept a special 'encrypted' version of the passwords, which
- are decrypted before being fed to Paradox. Use the encryption table
- below to determine the encrypted password that must be fed to GRPSNOOP
- and INISNOOP using the /pPassword command line switch.
-
- Encryption Table
- ----------------
-
- To determine the encrypted password to feed to GRPSNOOP/INISNOOP on
- the command line, look up each letter in the Paradox table password
- in the 'U' column of the table below and replace it with the
- corresponding letter in the 'E' column to the right. Note that digits
- and special characters (like @,$,% etc) do not get encrypted.
-
- For example, suppose you have a table password of @NIGHT_97_owl!. The
- special characters would remain unchanged, but using the table to
- replace the letters you would come up with an encrypted password of
- @AJXQK_97_nji!. You would use the command line switch /p@AJXQK_97_nji!
- to tell GRPSNOOP/INISNOOP the password to use to open the tables.
-
- U E U E
- - - - -
- a h A N
- b a B G
- c t C Z
- d m D S
- e f E L
- f y F E
- g r G X
- h k H Q
- i d I J
- j w J C
- k p K V
- l i L O
- m b M H
- n u N A
- o n O T
- p g P M
- q z Q F
- r s R Y
- s l S R
- t e T K
- u x U D
- v q V W
- w j W P
- x c X I
- y v Y B
- z o Z U
-
-
- RETURN VALUES AND ERROR MESSAGES
- ================================
-
- The following table shows the various possible return codes and error
- messages for both GRPSNOOP and INISNOOP. Note that return codes from
- 1 to 137 and the corresponding error messages are those of the Paradox
- Engine.
-
- RETCODE ERROR MESSAGE
- ------- ------------------------
- 0 No error
- 1 Drive not ready
- 2 Directory not found
- 3 File is busy
- 4 File is locked
- 5 Could not find file
- 6 Table is corrupted
- 7 Primary index is corrupted
- 8 Primary index is out of date
- 9 Record is locked
- 10 Sharing violation
- 11 Sharing violation
- 12 No access to directory
- 13 Sort for index different from table
- 14 Single user but directory is shared
- 15 Multiple Paradox net files found
- 16 Directory is in use by Paradox 3.5
- 21 Insufficient password rights
- 22 Table is write-protected
- 30 Data type mismatch
- 31 Argument is out of range
- 33 Invalid argument
- 40 Not enough memory to complete operation
- 41 Not enough disk space to complete operation
- 50 Another user deleted record
- 51 Operation N/A for Blob open mode
- 52 Blob already open
- 53 Invalid offset into Blob
- 54 Invalid size for Blob
- 55 Another user modified Blob
- 56 Blob file corrupted
- 57 Cannot index on a Blob
- 59 Invalid Blob handle
- 60 Cannot search on a Blob field
- 70 No more file handles available
- 72 No more table handles available
- 73 Invalid date given
- 74 Invalid field name
- 75 Invalid field handle
- 76 Invalid table handle
- 78 Engine not initialized
- 79 Previous fatal error; cannot proceed
- 81 Table structures are different
- 82 Engine already initialized
- 83 Unable to perform operation on open table
- 86 No more temporary names available
- 89 Record was not found
- 92 Can't handle version number encountered
- 93 Feature not available for tables older than Paradox 4.0
- 94 Table is indexed
- 95 Table is not indexed
- 96 Secondary index is out of date
- 97 Key violation
- 98 Could not login on network
- 99 Table name is invalid
- 101 End of table
- 102 Start of table
- 103 No more record handles available
- 104 Invalid record handle
- 105 Operation on empty table
- 106 Invalid lock code
- 107 Engine not initialized with PXNetInit
- 108 Invalid file name
- 109 Invalid unlock
- 110 Invalid lock handle
- 111 Too many locks on table
- 112 Invalid sort order table
- 113 Invalid net type
- 114 Invalid directory name
- 115 Too many passwords specified
- 116 Invalid password
- 117 Buffer is too small for result
- 118 Table is busy
- 119 Table is locked
- 120 Table was not found
- 121 Secondary index was not found
- 122 Secondary index is corrupted
- 124 Disk is write protected
- 125 Record too big
- 126 General System error
- 127 Not enough stack space to complete operation
- 128 Table is full
- 129 Not enough swap buffer space to complete operation
- 130 Table is SQL replica
- 131 Too many clients for the Engine DLL
- 132 Exceeds limits specified in WIN.INI
- 133 No more slots for file handle remapping
- 134 Can't share Paradox net file -- is SHARE.EXE loaded?
- 135 Can't run Engine in Windows real mode
- 136 Can't modify table opened on non-maintained secondary index
- 137 Timed out trying to get a lock
- 251 Requires at least a 386 processor
- 252 Requires at least DOS version 3.1
- 253 Various or none related to file i/o error
- 254 Can't locate PROGMAN.INI file
- 255 Various messages related to invalid command line args
-